home *** CD-ROM | disk | FTP | other *** search
/ Aminet 16 / Aminet 16 (1996)(GTI - Schatztruhe)[!][Dec 1996].iso / Aminet / misc / emu / QDOS1.lha / QLboot / DOCs / Amiga-QDOS.ver < prev    next >
Text File  |  1996-10-13  |  36KB  |  857 lines

  1.   ____      _  _     _   ____    ____       ____   ____      ____      ____
  2.  / __ \  / \/ \ | | / ___|  / __ \      / __ \ |  _ \  / __ \  / ___|
  3. | |__| ||      || || |     _ | |__| |  __  | |  | || | \ \| |  | | \_ \
  4. |  __  || |\/| || || |__| ||  __  | |__| | |_/    \| |_/ /| |__| | __\ \
  5. |_|  |_||_|  |_||_| \____/ |_|    |_|      \___/\/|____/  \____/ |____/
  6.  
  7. S O F T W A R E   Q D O S   E M U L A T O R   F O R   T H E   A M I G A
  8.  
  9. --------------------------------------------------------------------------
  10.  
  11. ›1m›4mVers. 3.23, revision 2 - AUG 96›0m
  12.  
  13. ›1mBUG FIXES:›0m
  14.  
  15.    Fixed bug in the BASIC BOOT program on the QLutils disk. The program
  16.    did not allocate enough RAM before loading the PDTK SuperBASIC toolkit.
  17.    The statement on line 1040: "RESPR(3008)" should have read
  18.    "RESPR(3148)". -MJS
  19.  
  20.    Fixed error in SuperBASIC utility SYS_REF that 'introduced' a bug into
  21.    patched TURBO tasks. All SYS_REF'ed tasks should be run through the new
  22.    version of SYS_REF to replace the old patches with new. -MJS
  23.  
  24. ›1mADDITIONS/ALTERATIONS:›0m
  25.  
  26.    Repatched the tasks on the utilities disk with the newer version of
  27.    SYS_REF. -MJS
  28.  
  29.    Earlier releases were as DMS disk archives. This allowed the emulator
  30.    to be distributed in a format free from the hassle of installation.
  31.    Since Aminet administrators frown upon the use of DMS, future releases
  32.    will be archived using LHA and will contain no Workbench related
  33.    material. -MJS
  34.  
  35. --------------------------------------------------------------------------
  36.  
  37. ›1m›4mVers. 3.23 - OCT 95›0m
  38.  
  39. ›1mBUG FIXES:›0m
  40.  
  41.    Fixed bug in MOVE SR,<ea> emulation routine that prevented TURBO
  42.    compiler (and possibly others) from working on the A4000/A1200 -MJS
  43.  
  44.    Fixed bug in JS ROM IO_QIN routine that assumed 24 bit addressing.
  45.    $383A BNE.S $385A becomes BLT.S $385A -MJS
  46.  
  47.    Fixed bug in JS ROM RI_EXEC routine that assumed that the byte stored
  48.    at address $0 was $0. The long word stored at address $0 contains the
  49.    initial stack when re-booting QDOS. If QDOS is moved to a high address
  50.    (eg $7e00000-$8000000), then the byte at zero is non-zero. -MJS
  51.  
  52.    Fixed bug(s) in keyboard routines that caused auto-repeat to sometimes
  53.    go into overdrive if interrupts were disabled for a long period
  54.    (i.e. during disk accesses). -MJS
  55.  
  56.    Fixed L_QDOS to disable the MMU (on the '040+) before taking over the
  57.    amiga. -MJS
  58.  
  59.    CTRL-ALT-SHIFT-TAB (hard reset) and CTRL-ALT-7 (soft reset) now wait
  60.    for blitter to finish before disabling anything (so no more rolling-
  61.    screen-garbage) and correctly set all variables for VDU routines
  62.    (so no more screen lock-ups) -MJS
  63.  
  64.    Fixed bug in JS ROM ATAN routine at $4350 (ARITH_asm).
  65.    move.l #...,(a6,a1.w) becomes move.l #...,(a6,a1.l) -SNG
  66.  
  67. ›1mADDITIONS/ALTERATIONS:›0m
  68.  
  69.    Changed TAS emulation code from F-Line to A-Line. F-Line instructions
  70.    were taking too long on the A4000, possibly due to the hardware
  71.    searching for non-existent co-processors. Emulation now uses
  72.    instruction: %1010111XXXXXXXXX. Altered NO_TAS and RESTORE_TAS to suit.
  73.    -MJS
  74.  
  75.    Added ICACHE_ON, ICACHE_OFF, DCACHE_ON and DCACHE_OFF. These keywords
  76.    allow the instruction and data caches to be turned on and off.
  77.    Intruction and data caches default to ON. -MJS
  78.  
  79.    Added RESET_EXTENTS command to compliment RESET_TOP and RESET_SV.
  80.    RESET_EXTENTS allows the simultaneous setting of RAMTOP and the system
  81.    variable area. -MJS
  82.  
  83.    Altered SYS_REF_task to make TURBO, TURBO compiled and some QLIB tasks
  84.    32-bit clean. -MJS
  85.  
  86.    Added support for 'other' (i.e. not the default) screen and independent
  87.    screen redraw (switch modes without clearing screen) to BASICs MODE and
  88.    the m/c routine MT.DMODE. (now 100%+ minerva compatible?). Task/screen
  89.    switching supports differing screen modes (i.e. one screen can be mode
  90.    8 and the other mode 4). The unused bits in SV_MCSTAT are used to
  91.    indicate the state of the 'unseen' screen. Lots of changes in the ROM
  92.    to accomodate for the fact that the screen you are drawing/printing to,
  93.    may be other than or in a different mode to the one that is being
  94.    shown. -MJS
  95.  
  96.    Added COPYBACK_ON and COPYBACK_OFF which allows copyback mode to be
  97.    turned on and off. -SNG
  98.  
  99.    Added 'ACE' screen accelerator. This ROM takes over from the blitter
  100.    providing QL screen emulation via the processor. Both MODE 4 and MODE 8
  101.    are supported. On 68030 processors and above, screen emulation is both
  102.    smoother and faster. 'ACE' screen emulation can be turned on or off via
  103.    the commands ACE_ON and ACE_OFF. -SNG
  104.  
  105.    Altered L_QDOS to 'auto-configure' allowing QDOS to be launched from a
  106.    single icon on ALL amigas. Custom icons are provided for those who wish
  107.    to force a particular configuration (i.e. running QDOS from CHIP RAM
  108.    only). -MJS
  109.  
  110.    Added KEZUK keyword. Acts just like KEYUK, by re-enabling the UK
  111.    keymap. -MJS
  112.  
  113.    Added MOVEP emulation for 68060 compatibility. MOVEP is not implemented
  114.    on the 68060! -MJS
  115.  
  116.    On 68010+... exception vectors now copied into RAM, and VBR set to
  117.    point to vector copies. This allows all 256 exceptions to be catered
  118.    for. Vectors 48-255 are normally unusable (overwritten) in QDOS. -MJS
  119.  
  120.    Vector 4 (illegal instruction) copied into vector 61. Allows 68060
  121.    MOVEP emulation to actually work. Bug fix suggested by Simon Goodwin.
  122.    -MJS
  123.  
  124. --------------------------------------------------------------------------
  125.  
  126. ›1m›4mVers. 3.22beta - (beta only, never released)... 93-94›0m
  127.  
  128. ›1mBUG FIXES:›0m
  129.  
  130.    Re-wrote the exception handler to accomodate for 680X0 processors. -MJS
  131.  
  132.    Fixed expansion RAM check routine - caused a bus error prior to F1/F2
  133.    screen on the A4000. -MJS
  134.  
  135.    Fixed L_QDOS so that it enters supervisor mode in a legal manner. -MJS
  136.  
  137.    Fixed a bug in RJOB/FRJOB routine (Trap#1 d0=4/5). The old JS routine
  138.    uses the upper bytes of addresses in the job table to "mark" jobs
  139.    awaiting deletion, while it traverses the job tree looking for related
  140.    jobs. It then assumes 24 bit addressing in hardware, and uses the
  141.    address without consideration as to the validity of the upper byte.
  142.    This caused a bus error on the A4000 whenever a job was removed. The
  143.    new routine uses a new status word (-3) that is stored in JB_STAT of
  144.    the job header and performs the same function in a 32-bit clean way.
  145.    -MJS
  146.  
  147.    A change in KBD_cde allows up to 8 characters to be typed while
  148.    interrupts are switched off (i.e. long disk accesses) before characters
  149.    are lost. The keyboard processor can store up to 20 key-strokes
  150.    (key-down / key-up = 2 key-strokes) in its' internal buffer before
  151.    losing characters. If the buffer is not empty the keyboard processor
  152.    causes an interrupt by setting a bit in INTREQ. During disk access
  153.    interrupts are disabled, but when interrupts are switched on again if
  154.    there are any characters in the buffer a CIAA interrupt should occur
  155.    immediately - allowing one to read the stored key-strokes. A logic
  156.    error in KBD_cde meant that if keystroke interrupts were 'stacked-up'
  157.    only the last one was serviced correctly. -MJS
  158.  
  159.    Added 'history' facility to KBD_cde. The last typed line can be
  160.    recovered by typing <ALT><ENTER> -MJS
  161.  
  162.    CTRL-TAB no-longer leaves a TAB character in the input stream, and
  163.    CTRL-I no-longer acts like a CTRL-TAB. -MJS
  164.  
  165.    Altered VDU code to clear BEAMCON0, BPLCON3 & FMODE for AGA downward
  166.    compatibility. -MJS
  167.  
  168.    Altered CLK code to update value for date every hour. This fixes a bug
  169.    whereby the date would wrap every 3.88 days if QDOS was left running
  170.    without ever doing a QL-reset. -MJS
  171.  
  172.    Altered CLK routine to use a value passed from Amiga-QDOS for the
  173.    date/time if no hardware clock is found - a    work-around fix for the
  174.    A4000 which seems to have the battery-backed-up clock at a different
  175.    hardware address. -MJS
  176.  
  177.    Fixed bug in 'NO_TAS_CoPro_bas' that produced bad code for TAS $.l
  178.    instruction. Fortunately TAS on absolute address is a rarely used
  179.    instruction. -MJS
  180.  
  181.    The FLP driver now checks the sector header to see if the track read
  182.    was the track that was requested. If it finds that it is reading the
  183.    wrong track, it attempts to step the head and re-read the track. It
  184.    tries this FOUR times before giving up with a BAD/CHANGED MEDIUM error.
  185.    Previously it was assumed that if the drive was asked to step IT WOULD
  186.    and that consequently any track read would be the correct one. -MJS
  187.  
  188.    The FLP driver now invalidates the MFM buffer after a read or write.
  189.    Previously it was possible that if for some reason the disk READ
  190.    routine returned before getting any data from disk, it might not be
  191.    noticed - since the buffer would almost certainly contain valid MFM
  192.    data. -MJS
  193.  
  194.  
  195. ›1mADDITIONS/ALTERATIONS:›0m
  196.  
  197.    Improved the documentation. The documentation was becoming unwieldly
  198.    (a new read.me file for every release) so I rationalised it down to 3
  199.    main files. "Amiga-QDOS.ver" contains information relating to specific
  200.    version releases, "Amiga-QDOS.doc" is a general overview of the
  201.    emulator and its peculiarities and "QDOS.doc" is an in-depth
  202.    description of the QDOS operating system. -MJS
  203.  
  204.    Added documentation for PDTK, the freeware BASIC toolkit to the QLutils
  205.    disk. Moved source to the QLutils disk also. -MJS
  206.  
  207.    Added FACCS, FXTRA, SET_FTYP, SET_FDAT, SET_FACCS, SET_FXTRA, CURSEN,
  208.    CURDIS to PDTK freeware BASIC toolkit. -MJS
  209.  
  210.    Added F_TRACE() and P_TRACE to the freeware toolkit PDTK. These
  211.    routines allow one to trace BASIC functions and procedures. -MJS
  212.  
  213.    Added D68K disassembly toolkit and documentation to the QLutils disk.
  214.    -FNS
  215.  
  216.    Added documentation for the TAS utility programs to the QLutils disk.
  217.    - MJS
  218.  
  219.    Altered 'NO_TAS_bas' and 'NO_TAS_CoPro_bas' to make use of the D68K
  220.    disassembly toolkit. -MJS
  221.  
  222.    Altered 'NO_TAS_bas', 'NO_TAS_CoPro_bas' and 'RESTORE_TAS_bas' to
  223.    enable the cursor during (y/n/a/q) queries - thus making it possible to
  224.    task-swap with CTRL-C into another job and back again. -MJS
  225.  
  226.    Altered 'RESTORE_TAS_bas' to handle code produced by both
  227.    'NO_TAS_CoPro_bas' and 'NO_TAS_bas'. -MJS
  228.  
  229.    Added 'TURBOFIX_bas' to allow non-F-line fix for TURBO tasks. -MJS
  230.  
  231.    Added screen blanking to MC_STAT hardware register emulation. -MJS
  232.  
  233.    Added support for QDOS sound. The BEEP syntax is supported in full.
  234.    Moved SPRITE and COPPER lists so as to provide room for a sound sample
  235.    buffer (280 bytes at $18168). -MJS
  236.  
  237.    Added PLAY_MUSIC_bas and PLAY_SCALE_bas to QLutils disk. These programs
  238.    demonstrate the possibilities of the BEEP command. -MJS
  239.  
  240.    Added RANDOM_code to QLutils disk, courtesy of SNG.
  241.  
  242.    Speeded up 'QLTRA_bas' by using the INPUT$ command from RANDOM_code.
  243.    Renamed program as 'SER_TRANSFER_bas'. -MJS
  244.  
  245.    Added the BASIC keywords PROG_USE, DATA_USE, DEST_USE, SPL_USE, PROGD$,
  246.    DATAD$ and DESTD$ to the FLP device driver. This is to accomodate for
  247.    programs like XCHANGE that make use of default directories. The
  248.    standard BASIC file commands (LOAD, SAVE, LBYTES etc.) do not as yet
  249.    make use of default directories (unless TK2 is loaded!). -MJS
  250.  
  251.    Added PD XCHANGE to QLutils support disk. Removed a number of programs
  252.    that were less useful. -MJS
  253.  
  254.    Added a routine to identify processor type. The results of the test
  255.    (executed at start-up) is stored in the second word of the system
  256.    variable SV_IDENT (i.e. at $28002). Execute a PEEK_W(163842) to find
  257.    out what QDOS thinks you have. The routine sets the following bits:
  258.      bit 0 - at least 68010    bit 4 - at least 68881
  259.      bit 1 - at least 68020    bit 5 - 68882 present
  260.      bit 2 - at least 68030    bit 6 - 68040/060 FPU
  261.      bit 3 - at least 68040    bit 7 - at least 68060
  262.    The routine also stores the following processor identity byte in
  263.    SysVars + 161, which follows recent QDOS conventions.
  264.    $00 (68000/68010), $20 (68020), $30 (68030), $40 (68040)
  265.    $60 (68060) -MJS ...68040/68060 changes -SNG
  266.  
  267.    Added emulation of the move sr,dn instruction in user mode for 680X0
  268.    processors. This addition should help A1200/A4000 users who were having
  269.    trouble running the QPTR pointer environment or TURBO (However there
  270.    was a bug in some beta versions of this emulation) -MJS
  271.  
  272.    Moved F-LINE emulation in with the general exception handlin routines
  273.    ('DBUGCODE_asm' & 'DBUGTBLS_asm'). -MJS
  274.  
  275.    The system now clears the instruction and data caches before executing
  276.    the F-LINE or MOVE sr,?? emulation routines (self modifying code!).
  277.    -MJS
  278.  
  279.    Added a TRACE routine to the system ROM. If the D68K toolkit is loaded,
  280.    a disassembly of the next instruction is given along with register
  281.    contents. -MJS
  282.  
  283.    If BASICs' #0 is found to be closed - CTRL-ALT-7, exception handling
  284.    (address error, illegal instruction etc.) and the TRACE routines now
  285.    re-open #0 to a standard CON window. -MJS
  286.  
  287.    MAIN_cde now links any unseen memory into the common heap as 'free'
  288.    memory. Dead areas (memory ranges that do not contain RAM) are linked
  289.    in as 'allocated' memory. It is no longer necessary to search for CHIP
  290.    RAM unknown to QDOS (as in the INSTALL routine of the 'QL World'
  291.    Amiga-QDOS article) since ALL RAM is available for use. The BOOT
  292.    program on the 'QLutils' disk is altered to accomodate these changes.
  293.    -MJS
  294.  
  295.    In this version AmigaQDOS ROMs (VDU, KBD etc) are ALWAYS loaded between
  296.    RAMTOP and the end of physical memory. This means that SV_RAMT does not
  297.    point to one past the last physical byte (as on a real QL), but to one
  298.    past the last usable byte. -MJS
  299.  
  300.    Altered the way MAIN_cde (and other ROMs) links itself into the RESET,
  301.    NMI, TRAP0, TRAP1 vectors etc... Now uses a linked list. -MJS
  302.  
  303.    Added 'MEMORY_MAP_bas' to the QLutils disk. This program prints the
  304.    current set-up of the various QDOS memory allocations (i.e common heap,
  305.    transient program area etc.) -MJS
  306.  
  307.    Added 'RESET_TOP' keyword (MAIN_cde) to allow users to re-boot with a
  308.    new RAMTOP, and 'RESET_SV' that allows users to move the system
  309.    variables and re-boot. See Amiga-QDOS.doc for details. -MJS
  310.  
  311.    The QDOS ROM (SYS_cde) is altered to allow the use of the second screen
  312.    and to take heed of repositioned system variables. MODE is altered to
  313.    act more like the Minerva ROM (see Amiga-QDOS.doc). -MJS
  314.  
  315.    KBD_cde is altered slightly to allow CTRL-C to switch screens if a task
  316.    makes use of the alternate screen. -MJS
  317.  
  318. ›1mOMISSIONS:›0m
  319.  
  320.    Removed UNIMPLEMENTED TRAP error routine from exception handler (the
  321.    use of trap #5 to trap #15 without first defining user trap routines).
  322.    The GST assembler - re-jigged by QUANTA - now contains two spurious
  323.    TRAP #5 instructions. -MJS
  324.  
  325. --------------------------------------------------------------------------
  326.  
  327. ›1m›4mVers. 3.21 - 21 APR 93›0m
  328.  
  329. ›1mBUG FIXES:›0m
  330.  
  331.    Altered MAIN_cde so as to prevent external interrupt routines being
  332.    interrupted part-way-through. -MJS
  333.  
  334.    Fixed bug whereby the SER device made use of H/W handshaking
  335.    irrespective of whether the connection was via SER1I or SER1H.
  336.    Handshaking is now implemented correctly. -MJS
  337.  
  338.    Closing a serial port connected via SER1Z now correctly sends a CTRL-Z
  339.    character before doing the actual close. -MJS
  340.  
  341.    Fixed bug that evolved in version 1.03 of the SER device driver. The
  342.    TBE interrupt (transmit buffer empty) was ignored, (the wrong bit was
  343.    tested) and data was only sent during the polled interrupt routine
  344.    meant for 'tidying up' the output buffer. This produced an through-put
  345.    rate of only 400-500 BAUD! -MJS
  346.  
  347.    The pending disk operation tidy-up routine is now a polled task as in
  348.    original CST sources. Previously the polled task caused floppy routines
  349.    to crash, so a scheduler task was used instead. -MJS
  350.  
  351.    The 'sethead' routine called during the 'flush' routine was the wrong
  352.    one. The routine used did not carry out a slave block update on files
  353.    of a particular length, and caused such files to lose their date. -MJS
  354.  
  355.    Fixed bug in the AmigaDOS QL-handler, that did not update the used
  356.    sectors count when copying to a QL disk. This sometimes resulted in a
  357.    disk appearing to have more sectors free than was physically possible.
  358.    -FNS
  359.  
  360.    Previous versions of the AmigaDOS QL-handler did not respond correctly
  361.    to the ACTION_INFO packets. This resulted in the QL device not
  362.    appearing for the Info command, and not appearing on the workbench,
  363.    when a non-QL disk was in the drive. -FNS
  364.  
  365. ›1mADDITIONS/ALTERATIONS:›0m
  366.  
  367.    The parallel device is now buffered and interrupt driven - so within
  368.    the constraints of printer speed, output via the parallel port is much
  369.    faster. -MJS
  370.  
  371.    Added 'RNCL' (RAW, CR/LF, CR or LF) end of line protocol and 'F'
  372.    (FORMFEED) end of file protocol (CLOSE) to the PAR device driver. -MJS
  373.  
  374.    Altered the QDOS diskcopy command to recognise and report an error
  375.    when the destination disk is write protected, and when either source
  376.    or destination is not in the drive. -MJS
  377.  
  378.    Wrote a disk archiver program called PPvolume that utilises the
  379.    powerPacker library and can crunch ANY disk format (PC AMIGA QL) that
  380.    has a corresponding device/handler. -MJS
  381.  
  382.    Changed the preferred distribution method from three disks to two
  383.    AMIGADOS disks. 'QLboot' contains the emulator and documentation,
  384.    'QLstuffed' contains the original AMIGADOS 'QLsource' disk and QDOS
  385.    'QLutils' disk as two stuffed archives. The archive program used is
  386.    PPvolume. -MJS
  387.  
  388.    Optimised the AmigaDOS QL-handler slightly, resulting in considerably
  389.    faster disk writes. -FNS
  390.  
  391. --------------------------------------------------------------------------
  392.  
  393. ›1m›4mVers. 3.20 - 28 FEB 93›0m
  394.  
  395. ›1mBUG FIXES:›0m
  396.  
  397.    Fixed bugs in the JS QDOS code at addresses $3EC, $60E, $6F0 and $3230
  398.    that contain ADDA.W instructions, where ADDA.L should be used. This
  399.    caused problems on large memory systems. -MJS
  400.  
  401.    Fixed a bug in the FLOPPY code that caused RENAME, SETHEAD and the
  402.    save/overwrite feature of TKII to function incorrectly. The original
  403.    CST sources used a polled task to tidy up pending disk operations after
  404.    disk access. For some reason this was removed from the emulator sources
  405.    and meant that after some disk operations, slave blocks and disk
  406.    contents no longer tallied. Subsequent disk writes could cause data
  407.    corruption. -MJS
  408.  
  409.    TAS emulation is now extended to two instructions a TST and a BSET, as
  410.    the original TAS emulation did not set the N flag and caused
  411.    difficulties in some programs.  -MJS
  412.  
  413. ›1mADDITIONS/ALTERATIONS:›0m
  414.  
  415.    Changed most of the icons to be more WB2-like in appearance. -MJS
  416.  
  417.    Added some new start-up icons reflecting even more machine
  418.    configurations. Renamed some of the older ones to be more user
  419.    friendly. -MJS
  420.  
  421.    Extended the number of tooltypes available to L_QDOS to 16. -MJS
  422.  
  423.    I put the source back together in the same order as the JS original and
  424.    implemented Amiga-specific code as separate extension ROMS. There are
  425.    now separate ROMs for the keyboard, for the display, for the system
  426.    time, etc...The result is that emulator is now a JS equivalent with a
  427.    few minor quirks. -MJS
  428.  
  429.    Rejigged the JS Floating point output routine (based on some pokes by
  430.    S N Goodwin) to allow accurate editing and printing of 8 digit numbers
  431.    without going into E notation. -MJS
  432.  
  433.    Initialised the QDOS system time in the external ROM 'CLK_cde', making
  434.    it possible to keep the time intact during a QL RESET
  435.    (CTRL-ALT-SHIFT-TAB) -MJS
  436.  
  437.    Added access to the second screen via CTRL-TAB, or by poking the
  438.    relevant hardware register (see below). -MJS
  439.  
  440.    Added emulation of the hardware register MC_STAT ($18063). You can
  441.    switch screens by toggling bit 7. You can switch screen modes by
  442.    toggling bit 3 (a change of screen colours signals that mode 8 is in
  443.    operation). -MJS
  444.  
  445.    This version of the emulator can display, and return the screen
  446.    coordinates of a simple mouse pointer (SPRITE) via the BASIC commands:
  447.    PTR_ON, PTR_OFF, PTR_X% and PTR_Y%. -MJS
  448.  
  449.    Added SCR_PRIORITY command allowing you to set the speed at which the
  450.    screen will be refreshed. -MJS
  451.  
  452.    Added BLIT_OFF and BLIT_ON commands. -MJS
  453.  
  454.    Added QL cold-reset function (CTRL-SHIFT-ALT-TAB). -MJS
  455.  
  456.    Made Keys F6-F10 produce the same codes as SHIFT F1-F5 -MJS
  457.  
  458.    Added KEYUK and KEYDT commands to allow you to switch between a UK or
  459.    German keymap. -MJS
  460.  
  461.    The serial and parallel devices are now implemented as separate ROMs.
  462.    -MJS
  463.  
  464.    Every drive attached to the Amiga now has its own ASCII buffer. This
  465.    means that copying between drives is considerably faster than with
  466.    previous releases. -MJS
  467.  
  468.    CRC checking has been re-implemented. Previously the floppy routines
  469.    had to disable CRC checking to allow the reading of disks, written to
  470.    by early versions of the emulator. -MJS
  471.  
  472.    Head stepping is quicker, now being handled by the TIMER. -MJS
  473.  
  474.    The floppy driver now word aligns sector data automatically during a
  475.    read by enabling the sync word ($4489) recognition signal. This means
  476.    that bit-shifting software no longer has to align raw MFM data. -MJS
  477.  
  478.    Added MOUNT command for drives that do not respond with a correct
  479.    drive ID. -MJS
  480.  
  481.    Added FLP_USE command. -MJS
  482.  
  483.    Wrote and included the programs 'NO_TAS_bas' and 'NO_TAS_task' which
  484.    are a rewrite of the program TAS_REPLACER_bas of previous releases.
  485.    These replace TAS instructions by a Line-F instruction with a
  486.    co-processor ID of 7 (bits 9-11 set). This is unused at present, so the
  487.    code  should be compatible with 68020, 68030 or 68040 machines that
  488.    include co-processors. -MJS
  489.  
  490.    Wrote 'RESTORE_TAS_bas' which puts-back TAS instructions where
  491.    'NO_TAS_bas' removed them. -MJS
  492.  
  493.    Wrote and included 'NO_TAS_CoPro_bas' and 'NO_TAS_CoPro_task'. These
  494.    are a rewrite of the program 'NO_TAS_30_bas' that appeared in earlier
  495.    releases. -MJS
  496.  
  497.    Wrote and included 'QLIBFIX_bas' that modifies QLIB'ed programs to run
  498.    on the emulator. -MJS
  499.  
  500.    Wrote and included 'POKE_DIGITS_bas' that modifies the emulator to run
  501.    with 5,6,7 or 8 digit floating point precision. -SNG
  502.  
  503.    Wrote and included the QL-disk handler and removed the utilities QLtoAM
  504.    and QLdir that are now redundant. It is now possible to insert a QL
  505.    disk into the Amiga and have AmigaDOS treat it like any other disk.
  506.    -FNS
  507.  
  508.    Wrote and included 'PDTK_rext' a public domain toolkit that includes
  509.    many commands found in TKII. Please distribute. -MJS
  510.  
  511. ›1mOMISSIONS:›0m
  512.  
  513. The effort to make the source practically byte for byte compatible with a
  514. standard JS ROM, made it necessary to drop some of the features of
  515. previous emulator releases.
  516.  
  517.    Dropped the OVERFLOW DISABLE feature of earlier sources.
  518.  
  519.    Dropped search path on IO.OPEN. Earlier sources had a modified IO.OPEN
  520.    (OLD) routine that would search devices RAM1_ RAM2_ FLP1_ FLP2_ in
  521.    order if it did not recognise a given filename. This is no longer
  522.    implemented. Toolkits such as TKII are more effective.
  523.  
  524. --------------------------------------------------------------------------
  525.  
  526. ›1m›4mVers. 3.10B - 25 JUN 90›0m
  527.  
  528. ›1mBUG FIXES:›0m
  529.  
  530.    Fixed bug in Messydisk device driver (nothing to do with QDOS, but used
  531.    by commands that access QL floppies on the Amiga). Although the QL
  532.    format only uses 9 sectors, my QL Trumpcard invariably creates a 10th,
  533.    incomplete sector. Messydisk had problems reading data from such disks.
  534.    -MJS
  535.  
  536. ›1mADDITIONS/ALTERATIONS:›0m
  537.  
  538.    Added access to QL floppies from AmigaDOS via 3 new commands: QLdir to
  539.    display a QL directory, QLtoAM to copy files from a QL disk to an Amiga
  540.    disk and QLdiskcopy to make duplicates of QL floppies. -MJS & FNS
  541.  
  542.    Have written and included a program called 'StripCode' which literally
  543.    strips the code segment out of an Amiga assembled file so that you can
  544.    run it in the QDOS environment. -FNS
  545.  
  546.    Moved source files over to the AmigaDOS environment, and altered it to
  547.    assemble with the A68K public domain assembler. Used stripcode to make
  548.    it run-able in the QDOS environment. -MJS
  549.  
  550. --------------------------------------------------------------------------
  551.  
  552. ›1m›4mVers. 3.10 - 27 MAY 90›0m
  553.  
  554. ›1mBUG FIXES:›0m
  555.  
  556.    Fixed bug in Slave Block initialisation. Every block of 512 bytes above
  557.    the start of the system variables is a potential slave block and has an
  558.    entry of eight bytes in a table which starts at SV.BTBAS and finishes
  559.    at SV.BTTOP. Great care is taken to make sure that the length of this
  560.    table is divisible by eight. The system variable SV.BTPNT points to the
  561.    most recent slave block entry and is initially set to point half way
  562.    through the table. No checks were made to make sure that SV.BTPNT was
  563.    itself divisible by eight. SV.BTPNT is now initialised correctly - half
  564.    way between the first usable entry, and the last usable entry. -MJS
  565.  
  566.    Fixed problem with common heap initialisation. In previous releases it
  567.    was very difficult to choose a value for ramtop, (besides the defaults)
  568.    that did not cause the machine to crash. The start of the common heap
  569.    has to fall on a 512 byte boundary which for certain values of ramtop,
  570.    was not always the case. SV.RAMT can now be set to any value that is
  571.    divisible by 512. -MJS
  572.  
  573.    Fixed a  bug in the floppy code which prevented access to a floppy
  574.    disk, should it be in the drive when you invoke QDOS. Any attempt to
  575.    access such a disk would show 'not found' or a corrupt directory unless
  576.    you physically removed and then re-inserted the disk in the drive.
  577.    Signalling a disk change in the initialisation routine of FLOPPY2_asm
  578.    cured the problem. -MJS
  579.  
  580.    Fixed CRC bug that prevented a real QL from accessing disks that had
  581.    been written by the Amiga-QDOS floppy routines. -MJS
  582.  
  583.    Fixed the IO.FLINE bug (caused crash on BASIC LOAD) in the Janus device
  584.    driver. -RK
  585.  
  586.    Altered the Load_QDOS routine so as to avoid loading QDOS at absolute
  587.    addresses. This should be of great use to all of you, who had trouble
  588.    with the second floppy drive. -RK
  589.  
  590.    Fixed some minor inconsistencies - the PAL bit is set, the Modulo is
  591.    set correct. -RK
  592.  
  593. ›1mADDITIONS/ALTERATIONS:›0m
  594.  
  595.    Added English keyboard support. -RC
  596.  
  597.    Added new Manager Trap: TRAP #1 with D0 set to $27 and D1 containing
  598.    the address of a new Keyboard table. Allows use of foreign Language
  599.    keyboard tables. -RK
  600.  
  601.    Added DSKCNG command to accommodate for drives that do not handle disk
  602.    change signals correctly, and cause problems for the disk routines. -RK
  603.  
  604.    Extended the diskchange command (DSKCNG) to handle more than one drive
  605.    correctly. -MJS
  606.  
  607.    Moved the marking of unusable blocks between system variables and lomem
  608.    to the slave block initialisation routine. This was formerly
  609.    accomplished by allocating the memory in the initialisation routine for
  610.    BASIC. As a result the MM_ALCHP "no clear" feature of previous releases
  611.    is now redundant. -MJS
  612.  
  613.    Added first version of the AmigaDOS L_QDOS command. This command is
  614.    similar to the old Load_QDOS command, except that it does not require
  615.    IconX since it takes its parameters from an icons' TOOLTYPES field.
  616.    -MJS
  617.  
  618.    Added a startup option for people with extended memory at $C00000. -MJS
  619.  
  620.    Added some nice icons that make this update is more "Amigaized", and so
  621.    perhaps, more easy to understand. -JR
  622.  
  623.    Altered the QDOS code to be 68010/20/30/40 proof. I have tested it
  624.    briefly, and it seemed to work. -RK
  625.  
  626.    Added a new feature to the TRAP #0 (enter supervisor mode). It now
  627.    saves the old Status Register as a word in the new defined System
  628.    Variable SV.SR = $28024. -RK
  629.  
  630.    Added SuperBasic program NO_TAS_30_bas which unlike the previous TAS
  631.    emulation utilities, doesn't generate line $F instructions. TAS
  632.    replaced programs show (at least) a very strange behaviour on 68030
  633.    machines with a coprocessor. This is because the line $F instructions
  634.    are used for coprocessor implementation. NO_TAS_30 replaces the TAS
  635.    instruction with a branch to equivalent code. This utility cannot be
  636.    used on code greater than 32K. -RK
  637.  
  638. --------------------------------------------------------------------------
  639.  
  640. ›1m›4mVers. 3.03 - 21 MAY 90›0m
  641.  
  642. ›1mBUG FIXES:›0m
  643.  
  644.    Fixed bug that caused the keyboard emulation to fail on certain
  645.    keyboards. -RK
  646.  
  647.    Fixed the Ctrl-C , Ctrl-spc , Ctrl-F5 'bug'. -RK
  648.  
  649.    Fixed obscure memory management bug. -RK
  650.  
  651. ›1mADDITIONS/ALTERATIONS:›0m
  652.  
  653.    Added device driver for QDOS floppies. -RK
  654.  
  655.    Added DISKCOPY command. -RK
  656.  
  657. --------------------------------------------------------------------------
  658.  
  659. ›1m›4mVers. 3.01 - ?? ??? ??›0m
  660.  
  661. ›1mADDITIONS/ALTERATIONS:›0m
  662.  
  663.    Added JANus device driver to give access to the IBM hard-disk on the
  664.    Bridgeboard. -RK
  665.  
  666. --------------------------------------------------------------------------
  667.  
  668. ›1m›4mVers. 2.00 - 22 JUN 89›0m
  669.  
  670. ›1mBUG FIXES:›0m
  671.  
  672.    Fixed the ERR_DF bug. -RK
  673.  
  674.    Fixed bug in translate routines. The TRA table should now work in both
  675.    directions (I have not tested the routine). -RK
  676.  
  677.    Fixed bug that caused EPROM initialisation to hang up during the Boot
  678.    process. -RK
  679.  
  680. ›1mADDITIONS/ALTERATIONS:›0m
  681.  
  682.    Added NMI (<ctrl.> <Alt> <7>) warm reset. -RK
  683.  
  684.    Added ability to BREAK out of EXEC_W programs. -RK
  685.  
  686.    Added SYS_RESET command. -RK
  687.  
  688.    Extended EPROM recognition. EPROMs now tested at $10000, and from
  689.    $40000 on in steps of 256 bytes. -RK
  690.  
  691.    Added search list (RAM1_, RAM2_, FLP1_, FLP2_, MDV1_, MDV2_) to OPEN on
  692.    old files, and the CLR_SEALST command that disables this feature. -RK
  693.  
  694.    Added the commands OV_OFF and OV_ON to switch the Overflow error
  695.    checking on Floating-point arithmetics on and off. -RK
  696.  
  697.    Reserved a scratch area of 1K in the respr area, just below RAMTOP. -RK
  698.  
  699. --------------------------------------------------------------------------
  700.  
  701. ›1m›4mKEY TO PROGRAMMERS›0m
  702.  
  703. Thanks to:
  704.  
  705. RK    Rainer Kowallik for the emulator.
  706.       Wolfgang Schroeder and Joern Ryba for discussion,
  707.       Boris Jakubith and Mathias Leidig for the CRC generator,
  708.       Andreas Ihlenfeld for his Keyrow MT.IPCOM,
  709. MJS   Mark J Swift for all of his Bug fixes (and recent modifications)
  710. FNS   Francis N Swift for the QL0: device driver and various utilities.
  711. SNG   Simon N Goodwin for POKE_DIGITS_bas, PALETTE_bas, for the QL World
  712.       and AmigaFormat articles about the emulator and for the many hours
  713.       of beta-testing.
  714. RC    Rod Crookes for the English keymap.
  715. JR    Joern Ryba for some nice icons.
  716.  
  717. --------------------------------------------------------------------------
  718.  
  719. ›1m›4mCOPYRIGHT STATEMENT:›0m
  720.  
  721. Since I have spent much time developing this emulator, I do not think that
  722. it is immoral to claim it as my own program. Nevertheless QDOS and related
  723. names are protected by those who still have the rights (is it Sinclair
  724. again, or Amstrad, or T.Tebby or who or what ?). However this should not
  725. stop you from spreading this disk, as long as you are sure that no
  726. commercial use is made from all that stuff. I am sure that these programs
  727. are only of interest to those people who own or have owned a QL or THOR,
  728. and so have already paid for the software. Those who are working with
  729. these programs and don't posses a QL, are invited to buy one second hand.
  730.  
  731. Rainer Kowallik
  732.  
  733. --------------------------------------------------------------------------
  734.  
  735. ›1m›4mWHAT HAS TO BE DONE NEXT›0m
  736.  
  737. These are the most important things to do, but unfortunately I don't have
  738. enough time to do this all by myself. I am writing my doctor thesis in
  739. Physics (May 90), and this will cost most of my time. So I am looking for
  740. people who are interested in this project and are able and willing to do
  741. some work for it. I think, it is best you contact me to get information
  742. about a specific part of the project. So you can avoid to invent the wheel
  743. a second time.
  744.  
  745. You can reach me by post mail:
  746.   Rainer Kowallik, Eisackstr. 14, 1000 Berlin(W) 62 (Germany)
  747.  
  748. By Phone:
  749.   (Germany) 030 855 866 5
  750.  
  751. By EAN mail:
  752.   Kowallik@vax@hmi@dbp.de
  753.  
  754. or in the new form:
  755.   S=KOWALLIK;OU=VAX;P=HMI;A=DBP;C=DE
  756.  
  757. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  758. Subject             | Programmer
  759. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  760. An adaption of the Toolkit  |
  761. network server which uses   |
  762. the CD bit of the serial    |
  763. port (CIA-B, PRA #5). The   |
  764. transmission speed should   |
  765. be changeble            |
  766. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  767. A device driver for the     |
  768. Harddisk DH0, using        |
  769. subdirectories and        |
  770. fileformat of Amigados        |
  771. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  772. New SCR_ and CON_ drivers   |
  773. which can use all features  |
  774. of the Amiga (32 colours,   |
  775. extra halfbright Interlace, |
  776. overscan)            |
  777. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  778. Modify the emulator to        |
  779. allow QDOS to run as an     |
  780. AmigaDOS task, thus        |
  781. allowing QDOS access to all |
  782. AmigaDOS devices and        |
  783. peripherals.            |
  784. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  785. ALL PROGRAMS (EXCEPT THE LAST) SHOULD BE IN THE FORMAT OF A
  786. STANDARD QL-ROM.NO OTHER INTERFACE THAN A ROM TOOLKIT SHOULD
  787. BE USED!
  788.  
  789. --------------------------------------------------------------------------
  790.  
  791. ›1m›4mMAKING CHANGES TO THE EMULATOR›0m
  792.  
  793. PLEASE DO CHANGE THE SOURCES, AND MARK ALL CHANGES WITH A SPECIAL COMMENT
  794. (e.g. a unique combination of special characters). WRITE DOWN (on white
  795. paper) WHICH ROUTINES (Label names) YOU HAVE MODIFIED, AND SEND BOTH (DISK
  796. AND PAPER) AS FAST AS POSSIBLE TO ME. I will put all changes together to
  797. make a new Version of QDOS.
  798.  
  799. Thank you,
  800.  
  801.   Rainer Kowallik, May 1990
  802.   Eisackstr. 14
  803.   1000 Berlin 62
  804.  
  805.   (030) 855 866 5
  806.  
  807.   Kowallik@vax@hmi@dbp.de
  808.  
  809. --------------------------------------------------------------------------
  810.  
  811. ›1m›4mADDENDUM - M J Swift›0m
  812.  
  813. ›1mCONTINUING DEVELOPMENT›0m
  814.  
  815. I am under the impression that due to recent commitments, Rainer has very
  816. little time to make any further improvements to the emulator. Therefore,
  817. in Rainers absence, I have taken on the responsibility for the emulator's
  818. continuing development.
  819.  
  820. Rainer states that he based his emulator on a JS ROM disassembly. He also
  821. re-ordered the source to be more logical, and re-wrote areas that were
  822. hardware specific.
  823.  
  824. This however, led to a mingling of old and new code that was very
  825. difficult to debug (for anyone but the original author). With this in mind
  826. I put the source back together in the same order as the JS original, and
  827. did a binary comparison with a genuine Sinclair JS ROM. This allowed me to
  828. pin-point NEW sections of code, which I implemented instead as separate
  829. Amiga-specific extension ROMS. For example there are now separate ROMs for
  830. the keyboard, display, system time, etc...
  831.  
  832. In a sense the current emulator is a reverse-engineered copy of Rainers'
  833. original which leaves the main bulk of system source code unchanged from a
  834. JS disassembly.
  835.  
  836. If you have any comments or bug-fixes you can contact me at the addresses
  837. given below. Any mail sent to Rainer will most likely be forwarded on to
  838. me.
  839.  
  840. Mail me direct at the         ...and contact me
  841. following address:        most weekends at:
  842.  
  843.   Rear Flat              325 Charlestown Road
  844.   175 Church Street          Blackley
  845.   Blackpool              Manchester
  846.   FY1 3NX              M9 7BS
  847.  
  848.   e-mail:              Tel. 0161-682 7587
  849.   msw@blackpool.ac.uk
  850.  
  851. If a bug is a one-off occurrence - it MAY be a glitch. If the bug recurs,
  852. please contact me describing IN DETAIL the condition of re-ocurrence. Be
  853. as specific as possible - and be patient.
  854.  
  855. MARK J SWIFT
  856. --------------------------------------------------------------------------
  857.